package Project.LinkList;


public class TestDemo {
    public static void main(String[] args) {
        test1();      // 测试一
        System.out.println("************************");
        test2();      // 测试二
        System.out.println("************************");
        test3();      // 测试三



    }

    public static void test1() {
        // 创建单链表的实例
        MyLinkList myLinkList = new MyLinkList();
        myLinkList.addFirst(0);      // 头插法
        myLinkList.deleteList();           // 尾删法
        myLinkList.disPlay();              // 打印单链表
        myLinkList.addFirst(9);      // 头插法
        myLinkList.addFirst(99);
        myLinkList.addFirst(999);
        myLinkList.disPlay();              // 打印单链表
        myLinkList.addList(10);      // 头插法
        myLinkList.addList(100);
        myLinkList.addList(1000);
        myLinkList.disPlay();              // 打印单链表
        myLinkList.deleteList();           // 尾删法
        myLinkList.disPlay();              // 打印单链表
    }

    public static void test2() {
        // 创建单链表的实例
        MyLinkList myLinkList = new MyLinkList();

        myLinkList.addFirst(9);                // 头插法
        myLinkList.addFirst(99);
        myLinkList.addFirst(999);
        myLinkList.disPlay();                        // 打印单链表
        System.out.println(myLinkList.contains(0));  // 查找是否含有对应数值的节点
        System.out.println(myLinkList.contains(999)); //
        System.out.println(myLinkList.size());        // 查找单链表中含有多少了节点
        myLinkList.addIndex(3,0);         // 在某个序号中插入节点
        myLinkList.addIndex(0,10);
        myLinkList.addIndex(1,1000);
        myLinkList.disPlay();                          // 打印单链表
        myLinkList.remove(0);                      // 删除第一个该数值的节点
        myLinkList.remove(10);
        myLinkList.disPlay();                           // 打印单链表
    }

    public static void test3() {
        // 创建节点
        MyLinkList myLinkList = new MyLinkList();

        myLinkList.addList(3);                   // 尾插法
        myLinkList.addList(6);
        myLinkList.addList(6);
        myLinkList.addList(3);
        myLinkList.addList(3);
        myLinkList.addList(3);
        myLinkList.addList(3);
        myLinkList.addList(2);
        myLinkList.addList(3);
        myLinkList.disPlay();                          // 打印该单链表
        myLinkList.removeKey(3);                       // 删除所有该数值的节点
        myLinkList.disPlay();                          // 打印该单链表
        myLinkList.clear();                            // 清空单链表
        System.out.println();
        System.out.println();
    }
}
